High speed serial communications paths, such as may exist between components in an optical networking node, are typically subject to very low error rates. An example of a baseline bit error rate which might be desirable for such serial links is 10−12. An example rate of such a link is 2.5 Gbps for a short haul connection between a port card and a switching matrix. In such a system, when operating normally, it takes an average of thousands of seconds before an error will occur. Various coding schemes have been developed for such applications.
One scheme not originally designed for this application but which has become a popular choice is commonly referred to as 8B/10B is taught in U.S. Pat. No. 4,486,739 to Franaszek, et al. entitled “Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code” which issued Dec. 4, 1984. With this scheme, 8 bit bytes are encoded into 10 bit code words. The code is crafted to allow a maximum of 4 “1”s or 4 “0”s in a row for data words. This is because another purpose of such codes is to provide sufficient transitions that timing recovery can be performed at a decoder, typically at a receiver. There are special start of packet (SOP) and end of packet (EOP) sequences which indicate the start of a new packet and the end of a current packet respectively. These SOP and EOP packets introduce overhead since data does not start until after the SOP.
Some detection and correction capabilities are provided by this code. One problem with 8B/10B is that there is some latency in the detection of errors. After a neutral code word (one containing 5 “0”s, and 5 “1”s), it is not possible to detect an error until several code words later, and theoretically there is no upper limit on the time it may take to detect an error. If correction is to be performed, then this latency presents a problem. Because latency is not predictable, fault isolation is not possible.
Another significant drawback of the 8B/10B code is that it requires an n+1/n multiplier for the clock rate used for the coded output (and thus also at the receiver) compared to the clock rate for the data per se, where each packet includes n data code words and one SOP code word.